module.exports = {
	/**
	 * 修改数据
	 * @url admin/datas/kh/update 前端调用的url参数地址
	 * data 请求参数 说明
	 * res 返回参数说明
	 * @params {Number} code 错误码，0表示成功
	 * @params {String} msg 详细信息
	 */
	main: async (event) => {
		const db = uniCloud.database();
		let {
			data = {}, userInfo, util, filterResponse, originalParam
		} = event;
		let {
			customUtil,
			uniID,
			config,
			pubFun,
			vk,
			_
		} = util;
		let {
			uid
		} = data;
		let res = {
			code: 0,
			msg: 'ok'
		};
		// 业务逻辑开始-----------------------------------------------------------
		// 获取前端传过来的参数
		let {
			_id,
			date,
			date_time,
			drxh,
			drcz,
			jrroi, //今日ROI，实际上是3日ROI
			srroi, //首日roi
			qrroi, //七日ROI
			gzcb,
			xyhffcb,
			xyhffupz,
			xyhffl,
			xyhs,
			xyhczje,
			xyhczrs,
			xyhczbs,
			drczrs,
			drczbs,
			hcbs,
			hcje,
			agent_id,
			agent_username,
			_add_time_str,
			_add_time
		} = data;

		// 参数验证开始
		if (vk.pubfn.isNull(_id)) return {
			code: -1,
			msg: 'id不能为空'
		};

		//==========查询并计算3日ROI开始==========
		//查询3日前的一天带来的用户的充值总金额，比如今日9.4，则计算9.2日新增的用户，在9.2，9.3,9.4这三天来累计充了多少钱
		//date_time是这条数据记录的日期的0点，比如9.4号的数据，记录的就是9.4日0点0分0秒,往前倒2天就是9.2号。
		// let old_time = await vk.pubfn.getDayOffsetStartAndEnd(-2, date_time)
		// //三日累计充值金额
		// res.srljcz = await vk.baseDao.sum({
		// 	dbName: "a_recharge",
		// 	fieldName: "shifu_amount", // 需要求和的字段名
		// 	whereJson: {
		// 		pay_status: 1,
		// 		user_register_date: _.and(_.gt(old_time.startTime), _.lt(old_time.endTime))
		// 	}
		// });

		// //先获取三天前的消耗值
		// let get_drxh = await db.collection('a_datas').where({
		// 	type: 0,
		// 	date_time: old_time.startTime,
		// }).get()

		// if (get_drxh.data.length > 0) {
		// 	//简化三天前的消耗值
		// 	let sr_drxh = get_drxh.data[0].drxh || 0
		// 	//必须大于0，否则计算中会有无穷大的值产生
		// 	if (sr_drxh > 0) {
		// 		// 今日roi ==》3日roi  3天前的一天带来的用户累计充值/今天的消耗
		// 		//特别注意，三日充值金额单位是分，当日消耗金额是元，所以需要/100
		// 		jrroi = vk.pubfn.toDecimal(res.srljcz / 100 / sr_drxh, 2)

		// 		//三日roi的值，应该存到3天前的数据中。比如9.4，算出来的三日roi应该存到9.1的数据中
		// 		let update_srroi = await db.collection('a_datas').where({
		// 			type: 0,
		// 			date_time: old_time.startTime,
		// 		}).update({
		// 			srljcz: vk.pubfn.toDecimal(res.srljcz / 100, 2), //三日累计充值金额
		// 			jrroi: jrroi
		// 		})
		// 	}
		// 	//==========查询并计算3日ROI结束==========
		// }



		//==========查询并计算7日ROI开始==========
		//查询7日前的一天带来的用户的充值总金额，比如今日9.7，则计算9.1日新增的用户，在9.1,9.2,9.3,9,4,9.5,9.6,9.7这7天来累计充了多少钱
		//date_time是这条数据记录的日期的0点，比如9.7号的数据，记录的就是9.7日0点0分0秒,往前倒6天就是9.1号。
		// let old_time_7days = await vk.pubfn.getDayOffsetStartAndEnd(-6, date_time)
		//7日累计充值金额
		// res.qrljcz = await vk.baseDao.sum({
		// 	dbName: "a_recharge",
		// 	fieldName: "shifu_amount", // 需要求和的字段名
		// 	whereJson: {
		// 		pay_status: 1,
		// 		user_register_date: _.and(_.gt(old_time_7days.startTime), _.lt(old_time_7days.endTime))
		// 	}
		// });

		//先获取7天前那一天的消耗值
		// let get_drxh_7days = await db.collection('a_datas').where({
		// 	type: 0,
		// 	date_time: old_time_7days.startTime,
		// }).get()

		// if (get_drxh_7days.data.length > 0) {
		// 	//简化7天前那一天的消耗值
		// 	let qr_drxh = get_drxh_7days.data[0].drxh || 0
		// 	//必须大于0，否则计算中会有无穷大的值产生
		// 	if (qr_drxh > 0) {
		// 		//七日roi = qrroi
		// 		//特别注意，7日充值金额单位是分，当日消耗金额是元，所以需要/100
		// 		qrroi = vk.pubfn.toDecimal(res.qrljcz / 100 / qr_drxh, 2)
		// 		//7日累计充值金额
		// 		let qrljcz = vk.pubfn.toDecimal(res.qrljcz / 100, 2)
		// 		//三日roi的值，应该存到3天前的数据中。比如9.4，算出来的三日roi应该存到9.1的数据中
		// 		let update_qrroi = await db.collection('a_datas').where({
		// 			type: 0,
		// 			date_time: old_time_7days.startTime,
		// 		}).update({
		// 			qrljcz: qrljcz,
		// 			qrroi: qrroi //七日ROI
		// 		})
		// 	}
		// }

		//==========查询并计算7日ROI结束==========

		//今日roi  当日充值/首日消耗
		jrroi = vk.pubfn.toDecimal(drcz / drxh, 2)

		//新用户付费成本
		xyhffcb = vk.pubfn.toDecimal(drxh / xyhczrs, 2)


		// 参数验证结束
		let dbName = "a_datas"; // 表名
		// 执行 数据库 updateById 命令
		await vk.baseDao.updateById({
			dbName,
			id: _id,
			dataJson: {
				date,
				drxh,
				drcz,
				jrroi,
				gzcb,
				xyhffcb,
				xyhffl,
				xyhs,
				xyhczje,
				xyhczrs,
				xyhczbs,
				drczrs,
				drczbs,
				hcbs,
				hcje,
				agent_id,
				agent_username,
				_add_time_str,
				_add_time
			}
		});
		// 业务逻辑结束-----------------------------------------------------------
		return res;
	}

}
